﻿#define _CRT_SECURE_NO_WARNINGS
//编译器
//vs
//g++
//clang
//找实习 比特课看完+项目+算法
// 
//----------------------------------------------------------

#include<stdio.h>
//#include<stdlib.h>//命名冲突  预处理阶段这个头文件会展开，有一个rand函数与int rand冲突，因为在同一个域
////所以	c++为了解决这个问题弄了个namespace命名空间的东西，这样相同名字就可以干不同事（下面c语言就是stdlib.h里面也有rand定义，与我自己定义的名字有冲突）
//int rand = 10;
//int main()
//{
//	printf("rand = %d", rand);
//	return 0;
//}

//----------------------------------------------------------

//#include<stdio.h>
//#include<stdlib.h>
//namespace l0x0hhh//命名空间域
//{
//	int rand = 10;
//}
//int x = 1;
//int main()
//{
//	int x = 0;
//	
//	printf("局部域：%d\n", x);
//	printf("全局域：%d\n", ::x);//两个分号左边什么都没有就是访问全局域的  ::域作用限定符
//
//
//	printf("stdlib.h rand = %p\n", rand);//这里找到的是<stdlib.h>在预处理展开后定义的库函数rand，所以这里是指针用%p来打印
//	printf("rand = %d", l0x0hhh::rand);
//	return 0;
//}

//----------------------------------------------------------
//#include <stdio.h>
//#include <stdlib.h>
//
//namespace bit//命名空间中可以定义变量/函数/类型等。//类型指的的就像C语言中的自定义类型，例如结构体，枚举，联合体等等
//{
//	int rand = 10;
//
//	int Add(int left, int right)
//	{
//		return left + right;
//	}
//
//	struct Node
//	{
//		struct Node* next;
//		int val;
//	};
//}

//----------------------------------------------------------

//namespace bit
//{
//	// 鹏哥
//	namespace pg//嵌套定义
//	{
//		int rand = 1;
//		int Add(int left, int right)
//		{
//			return left + right;
//		}
//	}
//
//	// 杭哥
//	namespace hg//嵌套定义
//	{
//		int rand = 2;
//		int Add(int left, int right)
//		{
//			return (left + right) * 10;
//		}
//	}
//}
//
//int main()
//{
//	printf("%d\n", bit::pg::rand);
//	printf("%d\n", bit::hg::rand);
//
//	printf("%d\n", bit::pg::Add(1, 2));
//	printf("%d\n", bit::hg::Add(1, 2));
//
//	return 0;
//}

//----------------------------------------------------------

#include"Stack.h"

//int main()
//{
//	bit::ST st;
//	bit::STInit(&st);
//	bit::STPush(&st, 1);
//	bit::STPush(&st, 1);
//	bit::STPush(&st, 1);
//	bit::STPush(&st, 1);
//
//	return 0;
//}

//----------------------------------------------------------

//using namespace bit;//不推荐

//using bit::STPush;//using将命名空间中某个成员展开
//
//int main()
//{
//	bit::ST st;
//	bit::STInit(&st);
//	STPush(&st, 1);
//	STPush(&st, 1);
//	STPush(&st, 1);
//	STPush(&st, 1);
//
//	return 0;
//}

//---------------------------------------------------

//#include<iostream>
////using namespace std;//把命名空间全部展开，指的是编译的时候，先去局部域找，后面从全局域找，最后去命名空间域找。不过这个方式不好在项目中用，容易冲突。
//// 避免：滥用 using namespace（可能导致名称冲突）。
////using std::cout;//展开指定命名空间域的指定成员。using将命名空间中某个成员展开
//
//int main()
//{
//	//cout << "Hello world!\n" << endl;//using namespace std;
//	
//	//cout << "hello world" << std::endl;
//	//cout << "hello world" << std::endl;
//	//cout << "hello world" << std::endl;
//
//	std::cout << "Hello,World!\n" << std::endl;//指定命名空间访问，项⽬中推荐这种⽅式。
//
//
//
//	return 0;
//}

//----------------------------------------------------------

//#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//using namespace std;
//int main()
//{
//	int a = 0;
//	double b = 0.1;
//	char c = 'x';
//	cout << a << " " << b << " " << c << endl;
//	std::cout << a << " " << b << " " << c << std::endl;
//	//scanf("%d%lf", &a, &b);
//	//printf("%d %lf\n", a, b);
//	//// 可以⾃动识别变量的类型
//	//cin >> a;
//	//cin >> b >> c;
//	//cout << a << endl;
//	//cout << b << " " << c << endl;
//	return 0;
//}

//----------------------------------------------------------
//#include<iostream>
//#include<algorithm>
//#include<list>
//#include<string>
//using namespace std;
//
////using std::cout;
////using std::endl;
//
//int main()
//{
//	// 自动识别类型
//	cout << "hello world\n" << std::endl;//endl是endline 可以等同于换行\n 加 刷新缓冲区
//	cout << "hello world\n" << std::endl;
//	cout << "hello world\n" << std::endl;
//
//	int a[10] = { 10,2,3,4,5,6,7,8,1,9 };
//	std::list<int> lt;
//	std::sort(a, a + 10);
//
//	for (size_t i = 0; i < 10; i++)
//	{
//		cout << a[i] << " ";
//	}
//	cout << "\n";
//
//	int i;
//	double d;
//	//cin >> i;//输入流 相当于scanf
//	//cin >> d;
//	std::cin >> i >> d;
//	cout << i << '\n';//输出流 相当于printf
//	cout << d << '\n';
//	cout << "l0x0hhh" << std::endl;//endl是endline 可以等同于换行\n 加 刷新缓冲区
//	cout <<"";
//	cout << "l0x0hhh" << "std::endl";
//	cout << "";
//	//cout << i << '\n' << d << '\n';
//	//cout << i << '\n' << d << endl;
//	//printf("%d\n", i);
//
//	//
//	//// 类
//	//std::string str("比特");
//	//// printf 指定格式 语法原生定义类型
//	//// 类类型无法支持
//
//	//// 本质为了支持任意类型输出输入
//	//cout << str << endl;
//	//cin >> str;
//	//cout << str << endl;
//
//	return 0;
//}


//----------------------------------------------------------
//void Func(int a = 0)//缺省参数
//{
//	cout << a << endl;
//}
//
//// 全缺省
//void Func1(int a = 10, int b = 20, int c = 30)
//{
//	cout << "a = " << a << endl;
//	cout << "b = " << b << endl;
//	cout << "c = " << c << endl << endl;
//}
//
//int main()
//{
//	Func(1);
//	Func();
//
//	Func1();
//	Func1(1);
//	Func1(1, 2);
//	Func1(1, 2, 3);
//
//	// 不支持
//	// Func1(1, , 3);
//	// Func1(, 2, 3);
//
//	return 0;
//}

//----------------------------------------------------------

#include <iostream>

int main() {
	int age;
	std::cout << "Enter your age: ";
	std::cin >> age;
	std::cout << "You are " << age << " years old.\n";  // 用 '\n' 代替 endl
	return 0;
}